package main

import ("fmt"
)

// func test(arr *[3]int){
// 	(*arr)[0] = 7
// }

func main(){
// 	arr := [3]int{4,2,6}
// 	test(&arr)
// 	fmt.Println(arr)

	//二维数组的定义（第一个方括号表示大数组里有几个小数组，第二个方括号里）
	var arr [2][3]int
	fmt.Println(arr)
	//二维数组的赋值
	arr[0][0] = 1
	arr[0][1] = 2
	arr[0][2] = 3
	arr[1][0] = 4
	fmt.Println(arr)
	//二维数组的地址
	fmt.Printf("arr的地址为:%p \n",&arr)
	fmt.Printf("arr[0]的地址为:%p \n",&arr[0])
	fmt.Printf("arr[0][0]的地址为:%p \n",&arr[0][0])
	//二维数组的初始化
	var arr1 [2][3]int = [2][3]int{{2,4,1},{6,3,6}}
	fmt.Println(arr1)

	//二维数组的遍历
	//方式一 for 循环
	for i := 0 ; i <len(arr1) ; i++{
		fmt.Println(arr1[i])
		for j := 0; j < len(arr[i]); j++{
		fmt.Print( arr1[i][j])
		}
	}
	//方式二：for range
	for i, row := range arr1 { // 外层循环遍历行
        for j, value := range row { // 内层循环遍历列
            fmt.Printf("arr1[%d][%d] = %d \n", i, j, value)
        }
    }

}